home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / Amos / DragonAMOS / Dragon_AMOS / Dragon_AMOS.amosSourceCode
Encoding:
AMOS Source Code  |  1995-03-16  |  8.9 KB  |  451 lines

  1. Erase All 
  2. Load "mysound.abk",5
  3. Screen Open 0,320,256,32,LORES
  4. Flash Off : Curs Off : Cls 0 : Hide On 
  5.  
  6. Bob Update Off 
  7. Autoback 1
  8. Track Load "mod.mysong",6
  9. Track Loop On 
  10. Track Play 
  11. Load "fightmisk.abk",1
  12. Load "1fight.abk",1
  13. Load "2fight.abk",1
  14. PIC=20
  15.  
  16. Global HIT1,HIT2,HITA,HITB,BNR,BNR2,MOVX,MOVY,NOX,NOY,MOVX2,MOVY2,NOX2,NOY2,PIC
  17. Global BCH,CH,HITOK,FLIP,FLIP1,B,B2,X,Y,HT1,HT2,F1,F2
  18. Global C1,C2,C3,C4,C5,C6,C7,C8,PO1,PO2,SPI,PTEL1,PTEL2
  19. P1=1 : P2=1
  20.  
  21. _INIT
  22. While LOP=0
  23.    If Joy(0)=16 Then LOP=1
  24.    If Joy(1)=16 Then LOP=1
  25. Wend 
  26. Track Stop 
  27. _INIT
  28. Bob 3,HIT1,10,3
  29. Bob 4,HIT2,10,3
  30. Tempo 2
  31. Do 
  32.    Bob Clear 
  33.    CH=0
  34.    HITOK=0
  35.    
  36.    If Joy(1)<>0 Then _WORK1
  37.    If Joy(0)<>0 Then _WORK2
  38.    
  39.    If SPARK1<7
  40.       If Joy(1) and 16
  41.          SPARK1=SPARK1+2
  42.          _SPARK1
  43.       End If 
  44.    End If 
  45.    
  46.    If SPARK2<7
  47.       If Joy(0) and 16
  48.          SPARK2=SPARK2+2
  49.          _SPARK2
  50.       End If 
  51.    End If 
  52.    
  53.    If Joy(1)<17 Then SPARK1=0
  54.    If Joy(0)<17 Then SPARK2=0
  55.    
  56.    BONR1=1 : BONR2=2
  57.    If MOVY>MOVY2 Then BONR1=2 : BONR2=1
  58.    
  59.    Bob BONR1,MOVX,MOVY,BNR
  60.    Bob BONR2,MOVX2,MOVY2,BNR2
  61.    
  62.    If HIT1=140
  63.       PO2=PO2+1000
  64.       B=BONR1 : X=MOVX : Y=MOVY
  65.       F1=F1+1
  66.       _POINTS
  67.       SPI=1
  68.       _BOOM
  69.       If F1=3 : _GAMEOVER : PIC=0 : End If 
  70.       _INIT
  71.    End If 
  72.    If HIT2=165
  73.       PO1=PO1+1000
  74.       B=BONR2 : X=MOVX2 : Y=MOVY2
  75.       F2=F2+1
  76.       _POINTS
  77.       SPI=2
  78.       _BOOM
  79.       If F2=3 : _GAMEOVER : PIC=0 : End If 
  80.       _INIT
  81.    End If 
  82.    
  83.    Bob Draw 
  84.    Screen Swap 0
  85.    Wait Vbl 
  86. Loop 
  87.  
  88. Procedure _SPARK1
  89.    MOVX=NOX
  90.    MOVY=NOY
  91.    PTEL1=0
  92.    If Joy(1)=26 Then BNR=30 : PTEL1=13 : HT1=3 : _SP1
  93.    If Joy(1)=24 Then BNR=31 : PTEL1=8 : HT1=1 : _SP1
  94.    If Joy(1)=25 Then BNR=32 : PTEL1=10 : HT1=2 : _SP1
  95.    If Joy(1)=22 Then BNR=24 : PTEL1=13 : HT1=3 : _SP1
  96.    If Joy(1)=20 Then BNR=25 : PTEL1=8 : HT1=1 : _SP1
  97.    If Joy(1)=21 Then BNR=26 : PTEL1=10 : HT1=2 : _SP1
  98. End Proc
  99. Procedure _SP1
  100.    X=MOVX
  101.    Y=MOVX2
  102.    C=Bob Col(2)
  103.    If C<>0
  104.       If FLIP=2
  105.          If X<Y
  106.             HITOK=0
  107.          Else 
  108.             HITOK=1
  109.          End If 
  110.       Else 
  111.          If X>Y
  112.             HITOK=0
  113.          Else 
  114.             HITOK=1
  115.          End If 
  116.       End If 
  117.    End If 
  118.    If MOVY-MOVY2>12 Then HITOK=0
  119.    If MOVY2-MOVY>12 Then HITOK=0
  120.    If HITOK=1
  121.       If SPARK1<2
  122.          HIT2=HIT2-HT1
  123.          If HIT2<165 : HIT2=165 : End If 
  124.          Bob 4,HIT2,10,3
  125.          PO1=PO1+PTEL1
  126.          Shoot 
  127.          _POINTS
  128.       End If 
  129.    End If 
  130.    Bob Clear 
  131. End Proc
  132. Procedure _SPARK2
  133.    MOVX2=NOX2
  134.    MOVY2=NOY2
  135.    If Joy(0)=22 Then BNR2=36 : HT2=3 : PTEL2=13 : _SP2
  136.    If Joy(0)=20 Then BNR2=37 : HT2=1 : PTEL2=8 : _SP2
  137.    If Joy(0)=21 Then BNR2=38 : HT2=2 : PTEL2=10 : _SP2
  138.    If Joy(0)=26 Then BNR2=42 : HT2=3 : PTEL2=13 : _SP2
  139.    If Joy(0)=24 Then BNR2=43 : HT2=1 : PTEL2=8 : _SP2
  140.    If Joy(0)=25 Then BNR2=44 : HT2=2 : PTEL2=10 : _SP2
  141. End Proc
  142. Procedure _SP2
  143.    X=MOVX
  144.    Y=MOVX2
  145.    C=Bob Col(1)
  146.    If C<>0
  147.       If FLIP1=1
  148.          If X<Y
  149.             HITOK=1
  150.          Else 
  151.             HITOK=0
  152.          End If 
  153.       Else 
  154.          If X>Y
  155.             HITOK=1
  156.          Else 
  157.             HITOK=0
  158.          End If 
  159.       End If 
  160.    End If 
  161.    If MOVY-MOVY2>12 Then HITOK=0
  162.    If MOVY2-MOVY>12 Then HITOK=0
  163.    If HITOK=1
  164.       If SPARK2<2
  165.          HIT1=HIT1+HT2
  166.          If HIT1>140 : HIT1=140 : End If 
  167.          Bob 3,HIT1,10,3
  168.          PO2=PO2+PTEL2
  169.          Sam Play 4
  170.          _POINTS
  171.       End If 
  172.    End If 
  173.    Bob Clear 
  174. End Proc
  175. Procedure _WORK1
  176.    NOX=MOVX
  177.    NOY=MOVY
  178.    
  179.    If Joy(1)=4 Then MOVX=MOVX-8 : FLIP=2
  180.    If Joy(1)=8 Then MOVX=MOVX+8 : FLIP=1
  181.    If Joy(1)=1 Then MOVY=MOVY-8
  182.    If Joy(1)=2 Then MOVY=MOVY+8
  183.    If Joy(1)=9 Then MOVX=MOVX+8 : MOVY=MOVY-8 : FLIP=1
  184.    If Joy(1)=10 Then MOVX=MOVX+8 : MOVY=MOVY+8 : FLIP=1
  185.    If Joy(1)=5 Then MOVX=MOVX-8 : MOVY=MOVY-8 : FLIP=2
  186.    If Joy(1)=6 Then MOVX=MOVX-8 : MOVY=MOVY+8 : FLIP=2
  187.    
  188.    If MOVX<40 Then MOVX=MOVX+8
  189.    If MOVX>270 Then MOVX=MOVX-8
  190.    If MOVY<140 Then MOVY=MOVY+8
  191.    If MOVY>200 Then MOVY=MOVY-8
  192.    
  193.    If MOVX<MOVX2
  194.       If MOVX>MOVX2-32
  195.          If MOVY<MOVY2+16 and MOVY>MOVY2-16
  196.             MOVX=MOVX-8
  197.          End If 
  198.       End If 
  199.    End If 
  200.    If MOVX>MOVX2
  201.       If MOVX<MOVX2+32
  202.          If MOVY<MOVY2+16 and MOVY>MOVY2-16
  203.             MOVX=MOVX+8
  204.          End If 
  205.       End If 
  206.    End If 
  207.    If MOVY<MOVY2
  208.       If MOVY>MOVY2-16
  209.          If MOVX<MOVX2+32 and MOVX>MOVX2-32
  210.             MOVY=MOVY-8
  211.          End If 
  212.       End If 
  213.    End If 
  214.    If MOVY>MOVY2
  215.       If MOVY<MOVY2+16
  216.          If MOVX<MOVX2+32 and MOVX>MOVX2-32
  217.             MOVY=MOVY+8
  218.          End If 
  219.       End If 
  220.    End If 
  221.    
  222.    
  223.    If Joy(1)>10
  224.       If FLIP=2
  225.          BNR=21
  226.       Else 
  227.          BNR=27
  228.       End If 
  229.       Pop Proc
  230.    End If 
  231.    
  232.    B2=B2+1
  233.    If B2=4 Then B2=1
  234.    If FLIP=2
  235.       If B2=1
  236.          BNR=21
  237.       End If 
  238.       If B2=2
  239.          BNR=22
  240.       End If 
  241.       If B2=3
  242.          BNR=23
  243.       End If 
  244.    Else If FLIP=1
  245.       If B2=1
  246.          BNR=27
  247.       End If 
  248.       If B2=2
  249.          BNR=28
  250.       End If 
  251.       If B2=3
  252.          BNR=29
  253.       End If 
  254.    End If 
  255. End Proc
  256. Procedure _WORK2
  257.    NOX2=MOVX2
  258.    NOY2=MOVY2
  259.    
  260.    If Joy(0)=4 Then MOVX2=MOVX2-8 : FLIP1=1
  261.    If Joy(0)=8 Then MOVX2=MOVX2+8 : FLIP1=2
  262.    If Joy(0)=1 Then MOVY2=MOVY2-8
  263.    If Joy(0)=2 Then MOVY2=MOVY2+8
  264.    If Joy(0)=9 Then MOVX2=MOVX2+8 : MOVY2=MOVY2-8 : FLIP1=2
  265.    If Joy(0)=10 Then MOVX2=MOVX2+8 : MOVY2=MOVY2+8 : FLIP1=2
  266.    If Joy(0)=5 Then MOVX2=MOVX2-8 : MOVY2=MOVY2-8 : FLIP1=1
  267.    If Joy(0)=6 Then MOVX2=MOVX2-8 : MOVY2=MOVY2+8 : FLIP1=1
  268.    
  269.    If MOVX2<40 Then MOVX2=MOVX2+8
  270.    If MOVX2>270 Then MOVX2=MOVX2-8
  271.    If MOVY2<140 Then MOVY2=MOVY2+8
  272.    If MOVY2>200 Then MOVY2=MOVY2-8
  273.    
  274.    If MOVX2<MOVX
  275.       If MOVX2>MOVX-32
  276.          If MOVY2<MOVY+16 and MOVY2>MOVY-16
  277.             MOVX2=MOVX2-8
  278.          End If 
  279.       End If 
  280.    End If 
  281.    If MOVX2>MOVX
  282.       If MOVX2<MOVX+32
  283.          If MOVY2<MOVY+16 and MOVY2>MOVY-16
  284.             MOVX2=MOVX2+8
  285.          End If 
  286.       End If 
  287.    End If 
  288.    If MOVY2<MOVY
  289.       If MOVY2>MOVY-16
  290.          If MOVX2<MOVX+32 and MOVX2>MOVX-32
  291.             MOVY2=MOVY2-8
  292.          End If 
  293.       End If 
  294.    End If 
  295.    If MOVY2>MOVY
  296.       If MOVY2<MOVY+16
  297.          If MOVX2<MOVX+32 and MOVX2>MOVX-32
  298.             MOVY2=MOVY2+8
  299.          End If 
  300.       End If 
  301.    End If 
  302.    
  303.    If Joy(0)>10
  304.       If FLIP1=1
  305.          BNR2=33
  306.       Else 
  307.          BNR2=39
  308.       End If 
  309.       Pop Proc
  310.    End If 
  311.    
  312.    B=B+1
  313.    If B=4 Then B=1
  314.    If FLIP1=1
  315.       If B=1
  316.          BNR2=33
  317.       End If 
  318.       If B=2
  319.          BNR2=34
  320.       End If 
  321.       If B=3
  322.          BNR2=35
  323.       End If 
  324.    Else If FLIP1=2
  325.       If B=1
  326.          BNR2=39
  327.       End If 
  328.       If B=2
  329.          BNR2=40
  330.       End If 
  331.       If B=3
  332.          BNR2=41
  333.       End If 
  334.    End If 
  335.    
  336. End Proc
  337. Procedure _POINTS
  338.    A$=Str$(PO1)
  339.    B$=Str$(PO2)
  340.    
  341.    LE1=Len(A$)
  342.    LE2=Len(B$)
  343.    
  344.    If LE1=2
  345.       A1$=Mid$(A$,2,1)
  346.       C1=Val(A1$)
  347.    End If 
  348.    If LE1=3
  349.       A1$=Mid$(A$,3,1)
  350.       A2$=Mid$(A$,2,1)
  351.       C1=Val(A1$)
  352.       C2=Val(A2$)
  353.    End If 
  354.    If LE1=4
  355.       A1$=Mid$(A$,4,1)
  356.       A2$=Mid$(A$,3,1)
  357.       A3$=Mid$(A$,2,1)
  358.       C1=Val(A1$)
  359.       C2=Val(A2$)
  360.       C3=Val(A3$)
  361.    End If 
  362.    If LE1=5
  363.       A1$=Mid$(A$,5,1)
  364.       A2$=Mid$(A$,4,1)
  365.       A3$=Mid$(A$,3,1)
  366.       A4$=Mid$(A$,2,1)
  367.       C1=Val(A1$)
  368.       C2=Val(A2$)
  369.       C3=Val(A3$)
  370.       C4=Val(A4$)
  371.    End If 
  372.    
  373.    
  374.    If LE2=2
  375.       A1$=Mid$(B$,2,1)
  376.       C5=Val(A1$)
  377.    End If 
  378.    If LE2=3
  379.       A1$=Mid$(B$,3,1)
  380.       A2$=Mid$(B$,2,1)
  381.       C5=Val(A1$)
  382.       C6=Val(A2$)
  383.    End If 
  384.    If LE2=4
  385.       A1$=Mid$(B$,4,1)
  386.       A2$=Mid$(B$,3,1)
  387.       A3$=Mid$(B$,2,1)
  388.       C5=Val(A1$)
  389.       C6=Val(A2$)
  390.       C7=Val(A3$)
  391.    End If 
  392.    If LE2=5
  393.       A1$=Mid$(B$,5,1)
  394.       A2$=Mid$(B$,4,1)
  395.       A3$=Mid$(B$,3,1)
  396.       A4$=Mid$(B$,2,1)
  397.       C5=Val(A1$)
  398.       C6=Val(A2$)
  399.       C7=Val(A3$)
  400.       C8=Val(A4$)
  401.    End If 
  402.    
  403.    Bob 6,10,30,C4+4
  404.    Bob 7,35,30,C3+4
  405.    Bob 8,60,30,C2+4
  406.    Bob 9,85,30,C1+4
  407.    Bob 10,210,30,C8+4
  408.    Bob 11,235,30,C7+4
  409.    Bob 12,260,30,C6+4
  410.    Bob 13,285,30,C5+4
  411.    
  412. End Proc
  413. Procedure _BOOM
  414.    Sam Play 1
  415.    For XX=14 To 20
  416.       Bob B,X-30,Y-40,XX
  417.       Bob Update 
  418.       Wait 2
  419.    Next XX
  420. End Proc
  421. Procedure _INIT
  422.    HIT1=37 : HIT2=267 : HIT=0 : BNR=27 : BNR2=33
  423.    If PIC=20 Then Load Iff "amos.drage",0 : PIC=0 : Pop Proc
  424.    PIC=PIC+1
  425.    If PIC>5 Then PIC=1 : _GAMEOVER
  426.    If PIC=2 Then Load Iff "amos.gadeport2",0
  427.    If PIC=3 Then Load Iff "amos.gade1",0
  428.    If PIC=1 Then Load Iff "amos.gade2",0
  429.    If PIC=4 Then Load Iff "amos.indk",0
  430.    If PIC=5 Then Load Iff "amos.havn",0
  431.    
  432.    Paste Bob 0,0,2
  433.    Double Buffer 
  434.    Bob 3,HIT1,10,3
  435.    Bob 4,HIT2,10,3
  436.    _POINTS
  437.    MOVX=60 : MOVY=150
  438.    MOVX2=270 : MOVY2=150
  439. End Proc
  440. Procedure _GAMEOVER
  441.    C1=0 : C2=0 : C3=0 : C4=0 : C5=0 : C6=0 : C7=0 : C8=0 : F1=0 : F2=0
  442.    Wait 20 : Bob Clear : Bob 5,60,60,1 : Bob Draw 
  443.    Bell : PO1=0 : PO2=0 : Wait 50 : Screen Swap 0
  444.    Wait Vbl : Track Play : Wait 200
  445.    Load Iff "amos.drage",0
  446.    While LOP=0
  447.       If Joy(0)=16 Then LOP=1
  448.       If Joy(1)=16 Then LOP=1
  449.    Wend 
  450.    Track Stop 
  451. End Proc